Skip to content

[Domain] flag walls and obstacles blocking connection passages#270

Merged
learncold merged 3 commits into
mainfrom
domain/obstacle-connection-validation
Jun 4, 2026
Merged

[Domain] flag walls and obstacles blocking connection passages#270
learncold merged 3 commits into
mainfrom
domain/obstacle-connection-validation

Conversation

@SilverSupplier
Copy link
Copy Markdown
Collaborator

Summary

  • Add layout import validation that flags a movement-blocking wall or obstacle whose geometry crosses the interior of a connection passage (new ImportIssueCode::ObstructedConnection, reported as a non-blocking warning). This closes the previously missing "walls/obstacles must not conflict with the space structure" validation item.
  • Crossings at span endpoints (doorways meeting flanking walls) and boundary-parallel walls are excluded so valid layouts are not falsely flagged.
  • Wire the new code into application-side live re-validation so it refreshes while the layout is edited.
  • Add tests/ImportValidationServiceTests.cpp: clean-layout baseline, a wall crossing a passage, a non-blocking barrier (ignored), and an endpoint-contact wall (ignored).

Area

  • Domain
  • Application

Architecture Check

  • I kept the dependency direction application -> domain -> engine.
  • I did not add Qt UI code to src/domain.
  • I did not add domain or application dependencies to src/engine.
  • I used src/ as the include root.

Verification

  • cmake --preset windows-debug
  • cmake --build --preset build-debug
  • ctest --preset test-debug
  • Not run (reason below)

Ran the release / no-app equivalents: cmake --preset windows-release-no-app, cmake --build --preset build-no-app-release, ctest --preset test-no-app-release -> 100% pass (includes the new ImportValidationServiceTests). The full Qt app build (cmake --build --preset build-release --target safecrowd_app) also succeeds.

Risks / Follow-up

  • The new issue is a non-blocking warning, so it surfaces for review without rejecting layouts. Tolerances exclude endpoint contact and boundary-parallel walls to avoid false positives on existing demo/test fixtures.

@SilverSupplier SilverSupplier requested a review from learncold as a code owner June 2, 2026 19:26
@learncold learncold merged commit 14e0360 into main Jun 4, 2026
2 checks passed
@learncold learncold deleted the domain/obstacle-connection-validation branch June 4, 2026 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants